home *** CD-ROM | disk | FTP | other *** search
Wrap
/* File: Dictionary.h Contains: Dictionary Manager Interfaces Version: Technology: System 8 Release: Universal Interfaces 3.0d3 on Copland DR1 Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved. Bugs?: If you find a problem with this file, send the file and version information (from above) and the problem description to: Internet: apple.bugs@applelink.apple.com AppleLink: APPLE.BUGS */ #ifndef __DICTIONARY__ #define __DICTIONARY__ #ifndef __TYPES__ #include <Types.h> #endif #if FOR_SYSTEM8_PREEMPTIVE #ifndef __AEDATAMODEL__ #include <AEDataModel.h> #endif #ifndef __AEREGISTRY__ #include <AERegistry.h> #endif #ifndef __FILEMANAGERTYPES__ #include <FileManagerTypes.h> #endif #endif #if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED #ifndef __FILES__ #include <Files.h> #endif #endif #ifdef __cplusplus extern "C" { #endif #if PRAGMA_IMPORT_SUPPORTED #pragma import on #endif #if PRAGMA_ALIGN_SUPPORTED #pragma options align=power /* the following contents can only be used by compilers that support PowerPC struct alignment */ /* ============================================================================================= System 8 Dictionary Manager ============================================================================================= */ #if FOR_SYSTEM8_PREEMPTIVE typedef UInt32 DCMUniqueID; #if FOR_PTR_BASED_AE typedef AERecord DCMFieldDataList; #endif typedef struct OpaqueDCMObjectID* DCMObjectID; typedef DCMObjectID DCMAccessMethodID; typedef DCMObjectID DCMDictionaryID; #define kDCMInvalidObjectID ((DCMObjectID) kInvalidID) typedef struct OpaqueDCMObjectRef* DCMObjectRef; typedef DCMObjectRef DCMDictionaryRef; typedef DCMObjectRef DCMDictionaryStreamRef; typedef DCMObjectRef DCMFieldInfoRef; #define kDCMInvalidObjectRef ((DCMObjectRef) kInvalidID) typedef struct OpaqueDCMObjectIterator* DCMObjectIterator; typedef DCMObjectIterator DCMAccessMethodIterator; typedef DCMObjectIterator DCMDictionaryIterator; typedef struct OpaqueDCMFoundRecordIterator* DCMFoundRecordIterator; /* Field specification declarations */ typedef FourCharCode DCMFieldTag; typedef FourCharCode DCMFieldType; typedef UInt64 DCMFieldSubType; enum { kDCMAnyFieldTag = typeWildCard, kDCMAnyFieldType = typeWildCard }; /* Dictionary information */ enum { kDCMDictionaryHeaderVersion = 1 }; struct DCMDictionaryHeader { FourCharCode headerSignature; UInt32 headerVersion; ByteCount headerSize; Str63 accessMethod; }; typedef struct DCMDictionaryHeader DCMDictionaryHeader; typedef OptionBits DCMFieldAttribute; enum { kDCMIndexedFieldMask = 0x00000001, kDCMRequiredFieldMask = 0x00000002, kDCMIdentifyFieldMask = 0x00000004, kDCMFixedSizeFieldMask = 0x00000008, kDCMHiddenFieldMask = 0x80000000 }; /* Standard dictionary properties */ enum { /* created/updated by AccessMethod.*/ /* data type: typeSInt16*/ kDCMPermissionPropertyTag = 'perm', /* created/updated by AccessMethod.*/ /* data type: typeSInt16*/ kDCMMaintenancePropertyTag = 'mtnc', /* created by AccessMethod. default = kLocaleIdentifierWildCard.*/ /* data type: typeUInt32*/ kDCMLocalePropertyTag = 'locl', /* optional.*/ /* data type: typeType*/ kDCMClassPropertyTag = 'clas', /* optional.*/ /* data type: typeChar (ASCII string)*/ kDCMCopyrightPropertyTag = 'info' }; /* 'perm' property constants */ enum { kDCMReadOnlyDictionary = 0, kDCMReadWriteDictionary = 1, kDCMFrozenDictionary = 2 }; /* Standard search method */ typedef OSType DCMFindMethodType; enum { kDCMExactMatchMethod = kAEEquals, kDCMBeginningMatchMethod = kAEBeginsWith, kDCMContainsMatchMethod = kAEContains, kDCMEndingMatchMethod = kAEEndsWith, kDCMForwardTrieMethod = 'ftri', /* used for morphological analysis*/ kDCMBackwardTrieMethod = 'btri' /* used for morphological analysis*/ }; /* AccessMethod features */ typedef OptionBits DCMAccessMethodFeature; enum { kDCMCanUseFileDictionaryMask = 0x00000001, kDCMCanUseMemoryDictionaryMask = 0x00000002, kDCMCanStreamDictionaryMask = 0x00000004, kDCMCanHaveMultipleIndexMask = 0x00000008, kDCMCanModifyDictionaryMask = 0x00000010, kDCMCanCreateDictionaryMask = 0x00000020, kDCMCanAddDictionaryFieldMask = 0x00000040, kDCMCanUseTransactionMask = 0x00000080 }; /* Error values */ enum { dcmParamErr = -7100, /* bad parameter*/ dcmNotDictionaryErr = -7101, /* not dictionary*/ dcmBadDictionaryErr = -7102, /* invalid dictionary*/ dcmPermissionErr = -7103, /* invalid permission*/ dcmDictionaryNotOpenErr = -7104, /* dictionary not opened*/ dcmDictionaryBusyErr = -7105, /* dictionary is busy*/ dcmBadDictionaryTypeErr = -7106, /* bad dictionary type*/ dcmBlockFullErr = -7107, /* dictionary block full*/ dcmNoRecordErr = -7108, /* no such record*/ dcmDupRecordErr = -7109, /* same record already exist*/ dcmNecessaryFieldErr = -7110, /* lack required/identify field*/ dcmBadFieldInfoErr = -7111, /* incomplete information*/ dcmBadFieldTypeErr = -7112, /* no such field type supported*/ dcmNoFieldErr = -7113, /* no such field exist*/ dcmDupFieldErr = -7114, /* field already exist*/ dcmBadKeyErr = -7115, /* bad key information*/ dcmTooManyKeyErr = -7116, /* too many key field*/ dcmBadDataSizeErr = -7117, /* too big data size*/ dcmBadFindMethodErr = -7118, /* no such find method supported*/ dcmBadPropertyErr = -7119, /* no such property exist*/ dcmEndOfStreamErr = -7120, /* reaches end of stream*/ dcmProtectedErr = -7121, /* need keyword to use dictionary*/ dcmNoAccessMethodErr = -7122, /* no such AccessMethod*/ dcmDupAccessMethodErr = -7123, /* AccessMethod already exist*/ dcmBadFeatureErr = -7124, /* invalid AccessMethod feature*/ dcmAccessMethodBusyErr = -7125, /* AccessMethod is busy*/ dcmIterationCompleteErr = -7126, /* no more item in iterator*/ dcmBufferOverflowErr = -7127, /* data is larger than buffer size*/ dcmChangesCommittedErr = -7128 /* changes cannot be backed out*/ }; /* Callback routines */ typedef OSStatus (*DCMRegisterStreamProc)(void *refcon, ByteCount maxSize, ByteCount *actualSize, LogicalAddress buffer); typedef Boolean (*DCMProgressProc)(void *refcon, Boolean determinateProcess, UInt16 percentageComplete); /* Create dictionary */ extern OSStatus DCMNewDictionary(DCMAccessMethodID accessMethod, FSObjectRef containerRef, ConstFSName dictionaryName, ItemCount numOfField, const DCMFieldInfoRef field[], Boolean invisible, ItemCount recordCapacity, DCMDictionaryID *newDictionary); extern OSStatus DCMDeriveNewDictionary(DCMDictionaryID srcDictionary, FSObjectRef containerRef, ConstFSName dictionaryName, Boolean invisible, ItemCount recordCapacity, DCMDictionaryID *newDictionary); /* Register dictionary */ extern OSStatus DCMRegisterDictionaryFile(FSObjectRef dictionaryFile, DCMDictionaryID *dictionaryID); extern OSStatus DCMRegisterDictionaryStream(DCMRegisterStreamProc myRegisterProc, void *refcon, ByteCount dictionarySize, DCMDictionaryID *dictionaryID); extern OSStatus DCMUnregisterDictionary(DCMDictionaryID dictionaryID); /* Open dictionary */ extern OSStatus DCMOpenDictionary(DCMDictionaryID dictionaryID, ByteCount protectKeySize, LogicalAddress protectKey, DCMDictionaryRef *dictionaryRef); extern OSStatus DCMCloseDictionary(DCMDictionaryRef dictionaryRef); /* Change access privilege */ extern OSStatus DCMGetDictionaryWriteAccess(DCMDictionaryRef dictionaryRef, Duration timeOutDuration); extern OSStatus DCMReleaseDictionaryWriteAccess(DCMDictionaryRef dictionaryRef, Boolean commitTransaction); /* Find records */ extern OSStatus DCMFindRecords(DCMDictionaryRef dictionaryRef, DCMFieldTag keyFieldTag, ByteCount keySize, ConstLogicalAddress keyData, DCMFindMethodType findMethod, ItemCount preFetchedDataNum, DCMFieldTag preFetchedData[], ItemCount skipCount, ItemCount maxRecordCount, DCMFoundRecordIterator *recordIterator); extern ItemCount DCMCountRecordIterator(DCMFoundRecordIterator recordIterator); #if FOR_PTR_BASED_AE extern OSStatus DCMIterateFoundRecord(DCMFoundRecordIterator recordIterator, ByteCount maxKeySize, ByteCount *actualKeySize, LogicalAddress keyData, DCMUniqueID *uniqueID, DCMFieldDataList *dataList); #endif extern OSStatus DCMDisposeRecordIterator(DCMFoundRecordIterator recordIterator); /* Dump dictionary */ extern OSStatus DCMGetNextRecord(DCMDictionaryRef dictionaryRef, DCMFieldTag keyFieldTag, ByteCount keySize, ConstLogicalAddress keyData, DCMUniqueID uniqueID, ByteCount maxKeySize, ByteCount *nextKeySize, LogicalAddress nextKeyData, DCMUniqueID *nextUniqueID); extern OSStatus DCMGetPrevRecord(DCMDictionaryRef dictionaryRef, DCMFieldTag keyFieldTag, ByteCount keySize, ConstLogicalAddress keyData, DCMUniqueID uniqueID, ByteCount maxKeySize, ByteCount *prevKeySize, LogicalAddress prevKeyData, DCMUniqueID *prevUniqueID); extern OSStatus DCMGetNthRecord(DCMDictionaryRef dictionaryRef, DCMFieldTag keyFieldTag, ItemCount serialNum, ByteCount maxKeySize, ByteCount *keySize, LogicalAddress keyData, DCMUniqueID *uniqueID); extern OSStatus DCMGetRecordSequenceNumber(DCMDictionaryRef dictionaryRef, DCMFieldTag keyFieldTag, ByteCount keySize, ConstLogicalAddress keyData, DCMUniqueID uniqueID, ItemCount *sequenceNum); /* Get field data */ #if FOR_PTR_BASED_AE extern OSStatus DCMGetFieldData(DCMDictionaryRef dictionaryRef, DCMFieldTag keyFieldTag, ByteCount keySize, ConstLogicalAddress keyData, DCMUniqueID uniqueID, ItemCount numOfData, const DCMFieldTag dataTag[], DCMFieldDataList *dataList); extern OSStatus DCMSetFieldData(DCMDictionaryRef dictionaryRef, DCMFieldTag keyFieldTag, ByteCount keySize, ConstLogicalAddress keyData, DCMUniqueID uniqueID, DCMFieldDataList dataList); #endif extern OSStatus DCMAnnotateTextObjectWithFieldData(DCMDictionaryRef dictionaryRef, DCMFieldTag keyTag, DCMUniqueID uniqueID, ItemCount numDataField, const DCMFieldTag data[], TextObject keyText); /* Add record */ #if FOR_PTR_BASED_AE extern OSStatus DCMAddRecord(DCMDictionaryRef dictionaryRef, DCMFieldTag keyFieldTag, ByteCount keySize, ConstLogicalAddress keyData, Boolean checkOnly, DCMFieldDataList dataList, DCMUniqueID *newUniqueID); #endif extern OSStatus DCMDeleteRecord(DCMDictionaryRef dictionaryRef, DCMFieldTag keyFieldTag, ByteCount keySize, ConstLogicalAddress keyData, DCMUniqueID uniqueID); extern OSStatus DCMCopyRecord(DCMDictionaryRef srcDictionary, DCMFieldTag keyFieldTag, ByteCount keySize, ConstLogicalAddress keyData, DCMUniqueID uniqueID, DCMDictionaryRef targetDictionary, Boolean checkOnly, DCMUniqueID *newUniqueID); /* Add field */ extern OSStatus DCMAddField(DCMDictionaryID dictionaryID, DCMFieldInfoRef fieldInfo, DCMProgressProc progressProcPtr, void *procRefcon); extern OSStatus DCMDeleteField(DCMDictionaryID dictionaryID, DCMFieldTag fieldTag, DCMProgressProc progressProcPtr, void *procRefcon); /* Get dictionary information */ extern OSStatus DCMCountRecord(DCMDictionaryID dictionaryID, ItemCount *count); extern OSStatus DCMGetDictionaryInformarion(DCMDictionaryID dictionaryID, DCMAccessMethodID *accessMethod, Boolean *isProtected); extern OSStatus DCMGetDictionaryFieldList(DCMDictionaryID dictionaryID, ItemCount maxFieldNum, ItemCount *actualFieldNum, DCMFieldTag fieldTag[], DCMFieldType fieldType[]); extern OSStatus DCMGetDictionaryFieldInfo(DCMDictionaryID dictionaryID, DCMFieldTag fieldTag, DCMFieldInfoRef fieldInfo); extern OSStatus DCMGetFileRefFromDictionaryID(DCMDictionaryID dictionaryID, FSObjectRef *fileRef); extern OSStatus DCMGetDictionaryIDFromFile(FSObjectRef fileRef, DCMDictionaryID *dictionaryID); extern DCMDictionaryID DCMGetDictionaryIDFromRef(DCMDictionaryRef dictionaryRef); extern UInt32 DCMGetDictionaryChangeCount(DCMDictionaryID dictionaryID); /* Dictionary property */ extern OSStatus DCMGetDictionaryProperty(DCMDictionaryID dictionaryID, DCMFieldTag propertyTag, ByteCount maxPropertySize, ByteCount *actualSize, LogicalAddress propertyValue); extern OSStatus DCMSetDictionaryProperty(DCMDictionaryID dictionaryID, DCMFieldTag propertyTag, ByteCount propertySize, ConstLogicalAddress propertyValue); extern OSStatus DCMGetDictionaryPropertyList(DCMDictionaryID dictionaryID, ItemCount maxPropertyNum, ItemCount *numProperties, DCMFieldTag propertyTag[]); /* Get dictionary stream */ extern OSStatus DCMCreateDictionaryStream(DCMDictionaryID dictionaryID, DCMDictionaryStreamRef *stream); extern OSStatus DCMReadDictionaryStream(DCMDictionaryStreamRef stream, ByteCount maxSize, ByteCount *actualSize, LogicalAddress buffer); extern OSStatus DCMDisposeDictionaryStream(DCMDictionaryStreamRef stream); /* Reorganize/compact dictionary */ extern OSStatus DCMReorganizeDictionary(DCMDictionaryID dictionaryID, ItemCount extraCapacity, DCMProgressProc progressProcPtr, void *procRefcon); extern OSStatus DCMFreezeDictionary(DCMDictionaryID dictionaryID, DCMProgressProc progressProcPtr, void *procRefcon); extern OSStatus DCMUnfreezeDictionary(DCMDictionaryID dictionaryID, ItemCount extraCapacity, DCMProgressProc progressProcPtr, void *procRefcon); /* Seaarch dictionary */ extern OSStatus DCMCreateDictionaryIterator(DCMDictionaryIterator *dictionaryIterator); extern OSStatus DCMFindDictionaryByField(DCMFieldTag desiredTag, DCMFieldType desiredType, DCMFieldAttribute attributeMask, ItemCount numOfFindMethod, const DCMFindMethodType neededMethods[], ByteCount requiredFieldSize, Boolean dataTypeTranslation, Boolean writeFieldData, Boolean findProtected, DCMDictionaryIterator dictionaryIterator); extern OSStatus DCMFindDictionaryByProperty(DCMFieldTag propertyTag, ByteCount propertySize, ConstLogicalAddress propertyValue, DCMDictionaryIterator dictionaryIterator); /* Search AccessMethod */ extern OSStatus DCMCreateAccessMethodIterator(DCMAccessMethodIterator *accessMethodIterator); extern OSStatus DCMFindAccessMethodByField(DCMFieldType fieldType, Boolean keyField, ItemCount numOfFindMethod, const DCMFindMethodType neededMethods[], ByteCount requiredSize, Boolean dataTypeTranslation, DCMAccessMethodIterator accessMethodIterator); extern OSStatus DCMFindAccessMethodByFeature(DCMAccessMethodFeature neededFeature, DCMAccessMethodIterator accessMethodIterator); /* Iterator Operation */ extern ItemCount DCMCountObjectIterator(DCMObjectIterator iterator); extern OSStatus DCMIterateObject(DCMObjectIterator iterator, DCMObjectID *objectID); extern OSStatus DCMResetObjectIterator(DCMObjectIterator iterator); extern OSStatus DCMDisposeObjectIterator(DCMObjectIterator iterator); /* Register AccessMethod */ extern OSStatus DCMRegisterAccessMethod(FSObjectRef accessMethodFile, ItemCount maxAccessMethodNum, ItemCount *accessMethodNum, DCMAccessMethodID accessMethod[]); extern OSStatus DCMUnregisterAccessMethod(DCMAccessMethodID accessMethod); /* Get AccessMethod information */ extern OSStatus DCMGetAccessMethodInformation(DCMAccessMethodID accessMethod, ByteCount maxNameLen, ByteCount *nameLength, LogicalAddress libraryName, UInt32 *version, DCMAccessMethodFeature *feature); extern OSStatus DCMGetAccessMethodFieldInfoList(DCMAccessMethodID accessMethod, ItemCount maxFieldNum, ItemCount *numOfField, DCMFieldInfoRef fieldInfo[]); /* Operators for DCMFieldInfoRef */ extern OSStatus DCMCreateFieldInfoRef(DCMFieldInfoRef *fieldInfo); extern OSStatus DCMDisposeFieldInfoRef(DCMFieldInfoRef fieldInfo); extern OSStatus DCMSetFieldInfoTagType(DCMFieldInfoRef fieldInfo, DCMFieldTag fieldTag, DCMFieldType fieldType, const DCMFieldSubType *subType); extern OSStatus DCMSetFieldInfoMaxSize(DCMFieldInfoRef fieldInfo, ByteCount maximumSize); extern OSStatus DCMSetFieldInfoAttribute(DCMFieldInfoRef fieldInfo, DCMFieldAttribute attribute); extern OSStatus DCMSetFieldInfoName(DCMFieldInfoRef fieldInfo, ItemCount numOfName, const ConstTextObject fieldName[]); extern OSStatus DCMSetFieldInfoFindType(DCMFieldInfoRef fieldInfo, ItemCount numOfType, DCMFindMethodType findMethodType[]); extern OSStatus DCMSetFieldInfoFindName(DCMFieldInfoRef fieldInfo, DCMFindMethodType findMethodType, ItemCount numOfName, const ConstTextObject findMethodName[]); extern OSStatus DCMSetFieldInfoDefaultData(DCMFieldInfoRef fieldInfo, ByteCount dataSize, ConstLogicalAddress defaultData); extern OSStatus DCMGetFieldInfoTagType(DCMFieldInfoRef fieldInfo, DCMFieldTag *fieldTag, DCMFieldType *fieldType, DCMFieldSubType *subType); extern OSStatus DCMGetFieldInfoMaxSize(DCMFieldInfoRef fieldInfo, ByteCount *maximumSize); extern OSStatus DCMGetFieldInfoAttribute(DCMFieldInfoRef fieldInfo, DCMFieldAttribute *attribute); extern OSStatus DCMGetFieldInfoName(DCMFieldInfoRef fieldInfo, LocaleIdentifier nameLocale, TextObject fieldName); extern OSStatus DCMGetFieldInfoNameList(DCMFieldInfoRef fieldInfo, ItemCount maxNameNum, ItemCount *numOfName, TextObject fieldName[]); extern OSStatus DCMGetFieldInfoFindTypeList(DCMFieldInfoRef fieldInfo, ItemCount maxMethodNum, ItemCount *numOfMethod, DCMFindMethodType findMethodType[]); extern OSStatus DCMGetFieldInfoFindName(DCMFieldInfoRef fieldInfo, DCMFindMethodType findMethodType, LocaleIdentifier nameLocale, TextObject findMethodName); extern OSStatus DCMGetFieldInfoFindNameList(DCMFieldInfoRef fieldInfo, DCMFindMethodType findMethodType, ItemCount maxNameNum, ItemCount *numOfName, TextObject findMethodName[]); extern OSStatus DCMGetFieldInfoDefaultData(DCMFieldInfoRef fieldInfo, ByteCount maxDataSize, ByteCount *actualSize, LogicalAddress defaultData); /* API for AccessMethod only */ extern OSStatus DCMAddFoundRecordToIterator(ByteCount keySize, ConstLogicalAddress keyData, DCMUniqueID uniqueID, DCMFieldType fieldType[], ByteCount dataSize[], ConstLogicalAddress data[], DCMFoundRecordIterator recordIterator); #endif /* ============================================================================================= System 7 Dictionary Manager ============================================================================================= */ #pragma options align=reset #pragma options align=mac68k #endif /* PRAGMA_ALIGN_SUPPORTED */ #if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED enum { /* Dictionary data insertion modes */ kInsert = 0, /* Only insert the input entry if there is nothing in the dictionary that matches the key. */ kReplace = 1, /* Only replace the entries which match the key with the input entry. */ kInsertOrReplace = 2 /* Insert the entry if there is nothing in the dictionary which matches the key, otherwise replaces the existing matched entries with the input entry. */ }; /* This Was InsertMode */ typedef short DictionaryDataInsertMode; enum { /* Key attribute constants */ kIsCaseSensitive = 0x10, /* case sensitive = 16 */ kIsNotDiacriticalSensitive = 0x20 /* diac not sensitive = 32 */ }; enum { /* Registered attribute type constants. */ kNoun = -1, kVerb = -2, kAdjective = -3, kAdverb = -4 }; /* This Was AttributeType */ typedef SInt8 DictionaryEntryAttribute; /* Dictionary information record */ struct DictionaryInformation { FSSpec dictionaryFSSpec; SInt32 numberOfRecords; SInt32 currentGarbageSize; ScriptCode script; SInt16 maximumKeyLength; SInt8 keyAttributes; }; typedef struct DictionaryInformation DictionaryInformation; struct DictionaryAttributeTable { UInt8 datSize; DictionaryEntryAttribute datTable[1]; }; typedef struct DictionaryAttributeTable DictionaryAttributeTable; typedef DictionaryAttributeTable *DictionaryAttributeTablePtr; extern pascal OSErr InitializeDictionary(const FSSpec *theFsspecPtr, SInt16 maximumKeyLength, SInt8 keyAttributes, ScriptCode script) THREEWORDINLINE(0x303C, 0x0500, 0xAA53); extern pascal OSErr OpenDictionary(const FSSpec *theFsspecPtr, SInt8 accessPermission, SInt32 *dictionaryReference) THREEWORDINLINE(0x303C, 0x0501, 0xAA53); extern pascal OSErr CloseDictionary(SInt32 dictionaryReference) THREEWORDINLINE(0x303C, 0x0202, 0xAA53); extern pascal OSErr InsertRecordToDictionary(SInt32 dictionaryReference, ConstStr255Param key, Handle recordDataHandle, DictionaryDataInsertMode whichMode) THREEWORDINLINE(0x303C, 0x0703, 0xAA53); extern pascal OSErr DeleteRecordFromDictionary(SInt32 dictionaryReference, ConstStr255Param key) THREEWORDINLINE(0x303C, 0x0404, 0xAA53); extern pascal OSErr FindRecordInDictionary(SInt32 dictionaryReference, ConstStr255Param key, DictionaryAttributeTablePtr requestedAttributeTablePointer, Handle recordDataHandle) THREEWORDINLINE(0x303C, 0x0805, 0xAA53); extern pascal OSErr FindRecordByIndexInDictionary(SInt32 dictionaryReference, SInt32 recordIndex, DictionaryAttributeTablePtr requestedAttributeTablePointer, Str255 recordKey, Handle recordDataHandle) THREEWORDINLINE(0x303C, 0x0A06, 0xAA53); extern pascal OSErr GetDictionaryInformation(SInt32 dictionaryReference, DictionaryInformation *theDictionaryInformation) THREEWORDINLINE(0x303C, 0x0407, 0xAA53); extern pascal OSErr CompactDictionary(SInt32 dictionaryReference) THREEWORDINLINE(0x303C, 0x0208, 0xAA53); #endif #if PRAGMA_ALIGN_SUPPORTED #pragma options align=reset #endif #if PRAGMA_IMPORT_SUPPORTED #pragma import off #endif #ifdef __cplusplus } #endif #endif /* __DICTIONARY__ */